In today's fast paced working environments, companies are deploying information technology to increase their employees' effectiveness. Concurrently, the increasing familiarity of users with computers, is forcing traditional sources of information such as newspapers, magazines, and television to offer computer readable counterparts in order to compete with on-line services such as Compuserve. America Online, Prodigy, among others. The computer readable news sources are typically available for free on a graphical digital depository known as a World Wide Web (WWW) on an Internet. Although more information is generally viewed as being more desirable, more information does not necessarily translate into greater knowledge, particularly if the user is inundated with irrelevant information.
As the transformation of information into knowledge is a cognitive process, the information needs to be prioritized and ranked in some manner to avoid saturating the user with an information overload. Such saturation tends to cause the user to ignore more relevant information which may lead to better decision making. Hence, the information needs to be filtered to better fit the requirements of the user. In some of these systems, news is already categorized or filtered for readers. For instance, those that subscribe to certain magazines or newspapers or view certain television networks, already have the vast base of electronically-available information (e.g., wire services) filtered for them. However, this “filtering” is performed on a large-scale basis, for a wide audience. The tailoring of specific stories of interest to particular users has not been performed by these magazines, newspapers or television networks.
Currently, a user needs to manually search and scan various information sources in order to obtain articles, postings, or other files of interest. The search typically uses a combination of keywords and Boolean constructs such as “and” and “or.” As these systems require some training and technical familiarity, few computer users can navigate the multiplicity of data formats and learn one or more languages to access different information repositories. However, as an even experienced user may not apply all possible search criteria at the onset of the search section, the keyword terms may not be as broad as possible to capture every file on the target topic. At the same time, the applied keywords may be unfocused or imprecise, leading to the partial retrieval of irrelevant articles. These problems accentuate the need to repeat search sessions, wasting the user's time and resources in foraging for information.
As an example, on the Internet, the user manually scans areas or sources of interest, including publications, USENET Newsgroups, or other areas classified by topic, to find areas of interest. Alternatively, the user can locate articles of interest by accessing a search engine such as Lycos or Alta Vista. The user then retrieves articles or files which have subject headings, for example, matching those which the user wishes to read. For example, in USENET Newsgroups on the Internet, postings frequently have relevant subject headings to permit manual scanning, similar to that provided by article headings in newspapers/magazines. The user can read the stories which have been filtered by topic, and subject heading, and if anytime during the viewing of the story the user wishes to ignore the rest of the article, he can stop reading it and simply discard the story. If desired, the user can download the remaining stories for off-line viewing as conventional. However, the manual scanning process is quite time-consuming, particularly as sources of information or data on the World Wide Web grow in scale and complexity. Further, the retrieval of irrelevant documents unnecessarily retards the delivery of more relevant information. Additionally, the presentation of irrelevant articles needlessly confuses and overloads the user's comprehension capacity.
As users conventionally need to repeatedly refine their queries to find satisfactory sets of documents, traditional methods for performing on-line search is tedious and expensive. Moreover, during the search, the user could be obligated to adapt to the query language while he or she moves from one database to another. Additionally, the user is aware of neither the quantity and type of available information nor its location. Further, the user is not aware of new entries and/or changes in the repositories. Thus, the ability to automatically sort through the large variety of electronic sources in order to generate a subset of the stories available in electronic form which is tailored to a user's specific interests is desired. Thus, end users are facing greater hurdles in tracking information relevant to their interests.
In response to the information overload, intelligent agents have been applied to help users make sense of the barrage of data available to them. An intelligent agent is a specialized program which communicates and exchanges data with databases and other intelligent agents, and the interface to these agents is called a personal assistant. Personal assistant programs, which use rule-based algorithms such as expert systems or training-based algorithms such as neural networks, have been adapted for automatically performing tasks on the workstation to reduce the information overload, particularly in an office environment. These personal assistants assist the user in handling a fixed set of events, conditions, and actions taken when the designated event occurs under the stated conditions. In general, the intelligent agent possesses the following characteristics:
1. Delegation: The user entrusts the agent to tackle some or all of an activity.
2. Personalization: The user determines how the agent interacts. In many cases, the agent learns about the user and adapts its act ions accordingly (along the lines of a personal assistant).
3. Sociability: The agent is able to interact with other agents in ways similar to interpersonal communications: This includes some degrees of give and take, flexibility, and goal-oriented behavior.
4. Predictability: The user has a reasonable expectation of the results.
5. Mobility: The ability to go out—usually onto the network—to accomplish the delegated task.
6. Cost effective: The benefits gained by the user, including time, information, filtering, among others, should be of greater value than the cost (monetary, time, re-work, etc.).
7. Skills: The agent has its own expertise. A simple agent may be capable of only executing a simple command containing no ambiguity or the ability to effectively deal with the ambiguity in the command.
8. Living within constraints: This can be as simple as, “find me the suit, but do not purchase it,” or become as complex as, “go only to the most likely information sources, since there is a fee to just access an information source.” Some information services, for example, allow the user to set the maximum amount of money to be spent on any search.
Intelligent agents are typically built using rule-based expert systems as well as pattern recognizers such as neural networks. As discussed in U.S. Pat. No. 5,537,590, expert systems (also called knowledge systems) are defined to be intelligent computer programs that use knowledge and inference procedures to solve problems that are hard enough as to require in their solution, significant expertise. Expert systems typically consist of an interpretive language where the user may write his or her program statements and the conditions associated with those statements, an inference engine, which provides the mechanism through which the expert rules are interpreted and fired, and an executive front-end or expert shell, that helps users write application programs using the language, and that helps them run the expert applications developed, and that also helps them develop and query reports or the generated diagnostics.
Expert (knowledge) systems contain two basic elements: inference engine and knowledge base. The knowledge base holds all information related to the tasks at hand: the rules and the data on which they will be applied. The inference engine is a mechanism that can operate the information contained in the knowledge base. In a rule-based system, the knowledge base is divided into a set of rules and working memory (or database). Just like an IF-THEN sentence, each rule has two parts: a premise and a conclusion. A rule is said to be fired when the inference engine finds the premise is stored as TRUE in working memory (the knowledge base) and it incorporates the conclusion of the rule to the working memory (knowledge base) too. Working memory is the database contained in the knowledge base. This holds all facts that describe the current situation. Generally, the expert system will start with very few facts. These will expand as the system learns more about the situation at hand, and as far as some rules are executed. The inference engine or rule interpreter has two tasks. First, it examines facts in working memory and rules in the rule base, and adds new facts to the database (memory) when possible. That is, it fires rules. Second, it determines in what order rules are scanned and fired. The inference engine can determine the order in which rules should be fired by different methods such as forward chaining, backward chaining, breadth- or depth-wise scan techniques, etc. Applications that use forward chaining, such as process control, are called data-driven. Applications that use backward chaining are called goal-driven. Forward chaining systems are typically used where relevant facts are contained in small sets and where many facts lead to few conclusions. A forward chaining system must have all its data at the start, rather than asking the user for information as it goes. Backward chaining should be used for applications having a large set of facts, where one fact can lead to many conclusions. A backward-chaining system will ask for more information if needed to establish a goal.
In addition to expert systems, a pattern recognizer called neural networks can be used. Neural networks attempt to mimic the human brain by “learning” different sets of stimulus patterns (such as medical symptoms) and their associated responses (diagnoses). Incomplete and/or overlapping sets of stimuli can be presented to the neural network, which can then return several responses matching those stimuli using probability weightings to produce an ordered list of responses. Each neural network problem session contains a set of defined stimuli, a set of defined responses, and a set of relationships between specific groups of stimuli and the response that each group is to produce. The set of stimuli (responses) is represented by a group of stimulus (response) nodes at what is called the “input (output) layer.” Then, there is usually one or more intermediate layers, containing nodes that are each linked to every input layer node and every output layer node in the network. The number of the middle layer nodes is usually equal to the average of the number of input and output nodes. Probability values (weights) are then associated with each of these connections and are constantly being updated as the network “learns” new information.
Further, when a planning agent works in a complex, real-world domain, it is unable to plan for and store all possible contingencies and problem situations ahead of time. The agent needs to be able to fall back on an ability to construct plans at run time under time constraints. Thus, a system for performing dynamic planning at run time is needed.